from PyQt4 import QtCore, QtGui

from teladown import Ui_TelaDownload

class TelaDownload(QtGui.QDialog):

    def __init__(self, parent=None,lista=None):
        QtGui.QDialog.__init__(self,parent)
        self.ui = Ui_TelaDownload()
        self.ui.setupUi(self)
        self.item = None
        self.lista = lista[:]
        self.total = 0
        for i in lista:
            self.total+=i[1]
        self.downloads = 0
        self.ui.prog_total.setRange(0,self.total)
        
    def inttostring(self,lalala):
        lala = float(lalala)
        sizestr = str(lala) + ' bytes'
        if lala>1024:
            sizestr = ("%.2f" %(lala/1024)) + ' KB'
            if lala>(1024*1024):
                sizestr = ("%.2f" %(lala/(1024*1024))) + ' MB'
                if lala>(1024*1024*1024):
                    sizestr = ("%.2f" %(lala/(1024*1024*1024))) + ' GB'
        return sizestr
        
    def atualiza(self, tupra):
        size = tupra[0]
        filesize = tupra[1]
        contadorzen = tupra[2]
        self.ui.prog_arquivo.setRange(0,filesize)
        tot = 0
        for i in xrange(contadorzen-1):
            tot+=self.lista[i][1]
        tamanho = ((float(tot)+float(size))/float(self.total))*100
        self.ui.prog_total.setValue(tot+size)
        self.ui.prog_arquivo.setValue(size)
        self.ui.lab_arquivo.setText(QtGui.QApplication.translate("TelaDownload", ("Arquivo %d de %d (%s de %s - %.2f%%)" %(contadorzen,len(self.lista),self.inttostring(size),self.inttostring(filesize),((float(size)/float(filesize))*100))), None, QtGui.QApplication.UnicodeUTF8))
        self.ui.lab_total.setText(QtGui.QApplication.translate("TelaDownload", ("Total (%s de %s -  %.2f%%)" %(self.inttostring(tot+size),self.inttostring(self.total),tamanho)), None, QtGui.QApplication.UnicodeUTF8))
        self.ui.arqlocal.setText(self.lista[contadorzen-1][2]+'/'+self.lista[contadorzen-1][0])
        self.ui.arqremoto.setText(self.lista[contadorzen-1][3]+'/'+self.lista[contadorzen-1][0])
        print size,filesize,contadorzen
        